// 接口，定义类的属性和方法，不能赋值
interface MyInterface {
    name: string
    age: number
}

// 多个接口会合并
interface MyInterface {
    sex: number
}

// 可以当做类型
let my: MyInterface = {name: '小火锅', age: 100, sex: 0}
console.log(my);


// 接口类，实现类需要把对应的方法是实现
interface RunInterface {

    // 距离
    distance: number

    // 跑
    run(): void
}

// 实现接口
class MyPerson implements RunInterface {
    name: string
    distance: number

    constructor(name: string) {
        this.name = name
    }

    run(): void {
        console.log(this.name + '跑了：' + this.distance + 'm');
    }
}

// 调用
let myPerson = new MyPerson('联系上课')
myPerson.distance = 1000
myPerson.run()